package com.kamistoat.meimeimall.common.dubboInterface;

import com.kamistoat.meimeimall.common.To.seckillTo.SecKillSkuInfoTo;
import com.kamistoat.meimeimall.common.utils.R;

/**
 * product模块 Dubbo 接口定义
 */
public interface ProductDubboInterface {
    /**
     * 获取商品的简易信息。构建购物车用
     *
     * @param skuId skuId
     * @return R. 内含 "skuCartInfoTo" - SkuCartInfoTo
     */
    R getSkuBizInfoForCart(Long skuId);

    /**
     * 获取sku的详细信息。构建秒杀时用
     * @param skuId skuId
     * @return R.内含 secKillSkuInfoTo
     */
    R getSkuInfoForSecKill(Long skuId);

    /**
     * 获取商品属性
     *
     * @param skuId skuId
     * @return R. 内含 "stringAttrList" - List<{@link String}>
     */
    R getStringAttr(Long skuId);

    /**
     * 获取商品最新价格。
     *
     * @param skuId skuId
     * @return R. 内含 "price" - BigDecimal
     */
    R getNewestPrice(Long skuId);

    /**
     * 根据skuId获取Spu
     * @param skuId skuId
     * @return R. 内含 "spuInfoTo" - SpuInfoTo
     */
    R getSpuBySkuId(Long skuId);

    /**
     * 查询菜单的层级
     */
    R getCategoryLevel(Long categoryId);
}
